package com.xzmzhp.dao.finance.SQL;

import com.xzmzhp.pojo.finance.FinanceType;
import com.xzmzhp.utils.StringUtils;
import org.apache.ibatis.jdbc.SQL;

/**
 * @author: 王源(xm)
 * @create: 2021-11-06 15:13
 * @program: ams
 * @description: 财务类型sql
 */
public class FinanceTypeSql {
    /**
     * 根据条件查询财务类型信息
     *
     * @param financeTypeName   财务类型名称
     * @param financeTypeStatus 财务类型状态
     * @return 相关财务类型信息sql
     */
    public String findFinanceTypeByName(String financeTypeName, String financeTypeStatus) {
        return new SQL() {
            {
                SELECT("finance_type_id,finance_type_name,finance_type_status");
                FROM("finance_type");
                if (StringUtils.isNotNull(financeTypeName)) {
                    WHERE("finance_type_name like '%" + financeTypeName + "%'");
                }
                if (StringUtils.isNotNull(financeTypeStatus)) {
                    WHERE("finance_type_status = " + financeTypeStatus);
                }
            }
        }.toString();
    }

    /**
     * 修改财务类型信息
     *
     * @param financeType 财务类型
     * @return 修改财务类型sql
     */
    public String updateFinanceType(FinanceType financeType) {
        if (StringUtils.isNotNull(financeType) && StringUtils.isNotNull(financeType.getFinanceTypeId())) {
            return new SQL() {
                {
                    UPDATE("finance_type");
                    if (StringUtils.isNotNull(financeType.getFinanceTypeName())) {
                        SET("finance_type_name = " + financeType.getFinanceTypeName());
                    }
                    if (StringUtils.isNotNull(financeType.getFinanceTypeStatus())) {
                        SET("finance_type_status = " + financeType.getFinanceTypeStatus());
                    }
                    WHERE("finance_type_id = " + financeType.getFinanceTypeId());
                }
            }.toString();
        }
        return null;
    }
}
